package com.shujia.day11;

import java.util.ArrayList;

public class Demo03Exception {
    public static void main(String[] args) {
        /*
            异常：
                需求：要买菜做饭
                1.先制定计划做那些菜 但是计划里面有问题 比如需要做红烧肉，但是菜单里面写的是排骨  -> 编译时期的异常
                2.计划没问题 菜买回来了 开始做饭，明明要做红烧肉，但是用的是炖锅 -> 表示为运行时期异常
                3.用铁锅做红烧肉，但是肉放多了，整个锅放了一头猪 装不下 锅太小 -> ERROR (系统性错误无法处理)

               在Java中异常顶级父类为 Throwable 其子类分为三类
                    1.ERROR  程序运行时，发生的系统性错误
                    2.RuntimeException   程序运行时的一些代码 逻辑错误
                    3.编译异常.. 写代码时期可以避免发生
         */

//        ArrayList<String> list = new ArrayList<>();
//        list.add(1);

//        System.out.println(1/0);

        // 堆内存空间溢出
        // java.lang.OutOfMemoryError: Java heap space
        String guo = "";
        while (true){
            guo += (guo+"一头猪");
        }

    }


}
